'''
    封装是面向对象的重要特性之一,它的基本思想是对外隐藏类的细节,提供用于访问类成员的公开接口.类的外部无须知道类的实现细节,只需要使用公开接口就可以访问类的
内容,故在一定程度上保证了类内数据的安全
    为了契合封装思想,在定义类时需要满足以下2个要求:
    (1) 将属性声明为私有属性
    (2) 添加2个工外界调用的公有方法,分别用于设置或获取私有属性的值
    下面结合以上2点要求定义一个person类,示例代码如下:
'''
class Person:
    def __init__(self,name):
        self.name = name    # 姓名
        self.__age = 1      # 年龄,默认为1岁,私有属性
    # 设置私有属性值的方法
    def set_age(self,new_age):
        if 0 < new_age <= 120:  # 判断年龄是否合法
            self.__age = new_age
    # 获取私有属性值的方法
    def get_age(self):
        return self.__age
'''
    以上示例定义的Person类中包含公有属性name,私有属性__age,公有方法set__age()和get_age(),其中__age属性的默认值为1,set_age()方法为外界提供了设置
__age属性值的接口,get_age()方法为外界提供了获取__age属性的值的接口.
    Person类定义完成后,创建Person类的对象person,通过对象person调用set_age()方法设置__age属性的值为20,然后通过对象person调用get_age()方法获取
__age属性的值,示例代码如下:
'''
if __name__ == '__main__':
    person = Person('小明')
    person.set_age(20)
    print(person.get_age())
'''
    结合示例代码和结果进行分析,程序获取的私有属性__age值为20,说明属性值设置成功.由此可知,程序只能通过类提供的2个公有方法访问私有属性,这既保证了类的属性的安全性,
又避免了随意给属性赋值的现象.
'''